package dominio;

import java.io.Serializable;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import persistencia.dao.UsuarioDAO;


@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
public class Usuario implements Serializable{
	

	private static final long serialVersionUID = 1L;
	@PrimaryKey  
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)  
	private Long id;
	@Persistent
	private String email;
	@Persistent 
	private String name;
	@Persistent 
	private String lastName;
	@Persistent
	private String password;
	@Persistent
	private String nombre_tienda;
	@Persistent
	private String telefono;
	@Persistent
	private String direccion;
	
	/* Constructor */
	public Usuario(String email, String name, String lastName, String password,
			String nombre_tienda, String telefono, String direccion) {
		super();
		this.email = email;
		this.name = name;
		this.lastName = lastName;
		this.password = password;
		this.nombre_tienda = nombre_tienda;
		this.telefono = telefono;
		this.direccion = direccion;
	}
	
	public Usuario() {
		super();
	}

	public String getNombre_tienda() {
		return nombre_tienda;
	}

	public void setNombre_tienda(String nombre_tienda) {
		this.nombre_tienda = nombre_tienda;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public String getDireccion() {
		return direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getLastName() {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
	
	public boolean create(boolean initOfTransaction, boolean endOfTransaction){
		return UsuarioDAO.create(this, initOfTransaction, endOfTransaction);
	}
	public static Usuario read(String email, boolean partOfTransaction){
		return UsuarioDAO.read(email, partOfTransaction);
	}
	
	public Usuario update(Usuario user, boolean partOfTransaction){
		return UsuarioDAO.update(user, partOfTransaction);
	}
	
	public Boolean delete(boolean partOfTransaction){
		return UsuarioDAO.delete(this.id, partOfTransaction);
	}
	
	public Usuario read(boolean partOfTransaction){
		return UsuarioDAO.read(this.id, partOfTransaction);
	}
	
}
